package ch28.visitor.Structure;

import ch28.visitor.action.Action;
import ch28.visitor.model.Person;

import java.util.ArrayList;
import java.util.List;

/**
 * @description: 类描述
 * @author: Fesine
 * @createTime:2016/12/25 15:05
 * @update:修改内容
 * @author: Fesine
 * @updateTime:2016/12/25 15:05
 */
public class ObjectStructure {
    private List<Person> personList = new ArrayList<>();

    /**
     * 加入需要观察的对象
     * @param person
     */
    public void attach(Person person) {
        personList.add(person);
    }

    /**
     * 移除需要观察的对象
     * @param person
     */
    public void detach(Person person) {
        personList.remove(person);
    }

    /**
     * 遍历显示对象内容
     * @param visitor
     */
    public void display(Action visitor) {
        for (Person person : personList) {
            person.accept(visitor);
        }
    }
}
